package com.ruoyi.erp.service;

import com.ruoyi.erp.domain.XzgProduct;

import java.util.List;
import java.util.Map;

/**
 * @author qiuwencong
 * @Date 2021/12/31 10:20
 * @Package com.ruoyi.erp.service
 * @Description
 */
public interface IXzgProductService {
    /**
     * 添加产品信息
     *
     * @param product
     * @return
     */
    int addProduct(XzgProduct product);

    /**
     * 检查是否有相同的产品名称和产品编号
     *
     * @param id
     * @param name
     * @return
     */
    Boolean checkProductName(Long id, String name);

    /**
     * 检查是否有相同的产品名称和产品编号
     *
     * @param id
     * @param code
     * @return
     */
    Boolean checkProductCode(Long id, String code);

    /**
     * 获取产品分页列表
     *
     * @param product
     * @return
     */
    List<XzgProduct> selectProductList(XzgProduct product);

    /**
     * 根据商品id获取商品信息
     *
     * @param productId
     * @return
     */
    XzgProduct selectProductById(Long productId);

    /**
     * 根据商品id秀嘎商品信息
     *
     * @param product
     * @return
     */
    int updateProduct(XzgProduct product);

    /**
     * 根据id逻辑删除数据
     *
     * @param productIds
     * @param username
     * @return
     */
    int deleteProductById(Long[] productIds, String username);

    /**
     * 根据编号或名称查询产品
     *
     * @param name
     * @return
     */
    List<XzgProduct> selectByCodeOrName(String name);

    /**
     * 查询指定产品的库存
     *
     * @param productId
     * @return
     */
    Integer selectCountById(Long productId);

    /**
     * 导入
     *
     * @param products
     * @param updateSupport
     * @param username
     * @return
     */
    Map<String, List<String>> importProducts(List<XzgProduct> products, boolean updateSupport, String username);
}
